package com.tiancheng.trade.payment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tiancheng.trade.commom.web.model.request.PayWayListQueryReq;
import com.tiancheng.trade.commom.web.model.request.PaymentPayWayQueryRequest;
import com.tiancheng.trade.commom.web.model.response.PaymentPayWayQueryResponse;
import com.tiancheng.trade.payment.model.PaymentWay;
import com.tiancheng.trade.payment.vo.api.res.PaymentWayResVO;

import java.util.List;

/**
 * 支付方式
 * @author su
 *
 */
public interface PaymentWayService extends IService<PaymentWay> {

    /**
     * 根据支付渠道编码获取支付渠道
     * @param channelCode 渠道编码
     * @return 渠道编码对应的支付方式
     */
    List<PaymentWay> getByChannelCode(String channelCode);

    /**
     * 根据支付渠道编码获取支付渠道
     * @param channelCode 渠道编码
     * @return 渠道编码对应的支付方式
     */
    List<PaymentWayResVO> getByChannelCodeConvert(String channelCode);

    /**
     * 根据支付渠道、支付方式查询
     * @param payChannel
     * @param payWay
     * @return
     */
    PaymentWay get(String payChannel, String payWay);

    /**
     * 查询机构配置的支付渠道信息
     * @param payWayQueryRequest
     * @return
     */
    List<PaymentPayWayQueryResponse> queryOrgPayWay(PaymentPayWayQueryRequest payWayQueryRequest);
    List<PaymentPayWayQueryResponse> queryOrgPayWayList(PayWayListQueryReq payWayListQueryReq);

    void savePayWay(PaymentWay paymentWay);
}
